/*
This is the replication file for Senninger, Bischof. Working in Unison. EUP. 
If you want to re-produce the findings and figures 1:1 you will need to install:
ssc install blindschemes, replace
set scheme plottig, permanently
ssc install coefplot, replace
ssc install grc1leg, replace
ssc install countfit, replace
ssc install nbvargr, replace
*/
drop _all
*adapt the following file directory to the "replication" folder:
cd "/Users/`=c(username)'/replication"
use "SB_Unison_REP.dta"

****FIGURE 1
drop if transfer==.
gen coll=1 
gen N=_N 
gen euvsnat=0 if party_i<30
replace euvsnat=1 if party_i>30

collapse (sum) transfer1-transfer23 (mean) N, by(coll)
reshape long transfer, i(N) j(j)

gen percentage=(transfer/N)*100
gen help1=percentage
drop percentage
gen percentage=round(help1,.1)
drop help1

label define CAPcodes 1 "Macroeco" 2 "Civil rights" 3 "Health" 4 "Agriculture" 5 "Labor" 6 "Education" 7 "Environment" ///
8 "Energy" 9 "Immigration" 10 "Transportation" 12 "Law" 13 "Social policy" 14 "Urban & housing" 15 "Industry" ///
16 "Defence" 17 "Technology" 18 "Foreign trade" 19 "International affairs" 20 "Government ops" ///
21 "Public lands" 23 "Culture & media"
label values j CAPcodes

graph bar (sum) percentage, over(j, sort(percentage) descending label(angle(forty_five))) ///
blabel(total) ytitle("% of dyads") 

****TABLE 3 in paper; transfer of ALL issues:
drop _all
use "SB_Unison_REP.dta"
eststo clear
eststo: menbreg count_transfer sameparty ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: menbreg count_transfer sameparty seats_i gov_i ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: menbreg count_transfer sameparty seats_i gov_i diff_ideology nateu ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: xi: menbreg count_transfer sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: xi: menbreg count_transfer sameparty seats_i gov_i diff_ideology nateu ///
i.reform i.break_eu i.break_nat ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: xtmelogit transfer sameparty seats_i gov_i diff_ideology nateu stime* ///
|| _all: party_i, noconstant || _all: party_j,  noconstant  variance intpoints(1)
esttab using tab3.tex, eform se stats(ll chi2 N)  ///
eqlabels("" "ln alpha" "var(party_i)"  "var(party_j)" , none) ///
label nobaselevels  ///
title("Explaining policy transfer, pooled regression results") ///
note("Exponantiated coefficients; standard errors in parentheses Models 1-4 non-nested multilevel negative binomial model; Model 5 non-nested multilevel logit model with time splines (omitted from table); 5thterm = refecence category in model 4.") ///
nonumbers mtitles("baseline" "party controls" "level controls" "reforms" "binary DV") ///
substitute(\_ _) drop(stime*) ///
replace


****FIGURE 2: Coefplot 
eststo coef: menbreg count_transfer sameparty seats_i gov_i diff_ideology nateu ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr

coefplot (coef) , drop(_cons) xline(0) ///
mlabels(sameparty nateu= 1 "+" gov_i= 1 "-" diff_ideology = 1 "0") ///
coeflabel(sameparty = "party{subscript:i}=party{subscript:j}" ///
seats_i = "seats{subscript:i}" ///
gov_i = "government{subscript:i}" ///
diff_ideology = "|ideology{subscript:i}-ideology{subscript:j}|" ///
nateu = "national{subscript:j} -> EU{subscript:i}")


******Figure 3: Transfer per issue
eststo clear
sort party_i party_j my
*model
eststo est1: xtmelogit transfer19 sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant
***
sort party_i party_j my
*model
eststo est2: xtmelogit transfer7 sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant
***
sort party_i party_j my
*model
eststo est3: xtmelogit transfer4 sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant
***
sort party_i party_j my
*model
eststo est4: xtmelogit transfer10 sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant
***
sort party_i party_j my
*model
eststo est5: xtmelogit transfer15 sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant
***
sort party_i party_j my
*model
eststo est6: xtmelogit transfer3 sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant
***
sort party_i party_j my
*model
eststo est7: xtmelogit transfer5 sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant
***
sort party_i party_j my
*model
eststo est8: xtmelogit transfer20 sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant
***
sort party_i party_j my
*model
eststo est9: xtmelogit transfer12 sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant

***COEFPLOT:
coefplot ///
(est2, label(Environment) mlabels(sameparty = 1 "Environment") pstyle(p1)) ///
(est7, label(Labor) mlabels(sameparty = 1 "Labor") pstyle(p1) ) ///
(est3, label(Agriculture) mlabels(sameparty = 1 "Agriculture") pstyle(p1)) ///
(est5, label(Industry) mlabels(sameparty = 1 "Industry") pstyle(p1)) ///
(est1, label(International Affairs) mlabels(sameparty = 1 "International Affairs") pstyle(p1)) ///
(est8, label(Government ops) mlabels(sameparty = 1 "Government Ops") pstyle(p2)) ///
(est9, label(Law) mlabels(sameparty = 1 "Law") pstyle(p2)) ///
(est4, label(Transportation) mlabels(sameparty = 1 "Transportation") pstyle(p2)) ///
(est6, label(Health) mlabels(sameparty = 1 "Health") pstyle(p2)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) ///
xline(0, lpattern(dash)) legend(off) ///
coeflabel(, noticks nolabels)

****FIGURE 4: Issue-based Models

*transfer 19
drop _all
use "SB_Unison_REP.dta"
*baseline
rename count_cap19 sweden
eststo est10: xtmelogit transfer19 sameparty sweden seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap19 
*MIP
rename foreign mip
eststo est19: xtmelogit transfer19 sameparty mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip foreign 
*Sweden
rename foreign mip
rename count_cap19 sweden
eststo est19b: xtmelogit transfer19 sameparty sweden mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap19
rename mip foreign 

*transfer 7
drop _all
use "SB_Unison_REP.dta"
*baseline
rename count_cap7 sweden
eststo est11: xtmelogit transfer7 sameparty sweden seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap7 
*MIP
rename environment mip
eststo est20: xtmelogit transfer7 sameparty mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip environment 
*Sweden
rename environment mip
rename count_cap7 sweden
eststo est20b: xtmelogit transfer7 sameparty sweden mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip environment
rename sweden count_cap7 

*transfer 4
drop _all
use "SB_Unison_REP.dta"
*baseline
rename count_cap4 sweden
eststo est12: xtmelogit transfer4 sameparty sweden seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap4 

*transfer 10
drop _all
use "SB_Unison_REP.dta"
*baseline
rename count_cap10 sweden
eststo est13: xtmelogit transfer10 sameparty sweden seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap10 
*MIP
rename transport mip
eststo est21: xtmelogit transfer10 sameparty mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip transport 
*Sweden
rename transport mip
rename count_cap10 sweden
eststo est21b: xtmelogit transfer10 sameparty sweden mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip transport 
rename sweden count_cap10 

*transfer 15
drop _all
use "SB_Unison_REP.dta"
*baseline
rename count_cap15 sweden
eststo est14: xtmelogit transfer15 sameparty sweden seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap15 
*MIP
rename economy mip
eststo est22: xtmelogit transfer15 sameparty mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip economy 
*Sweden
rename count_cap15 sweden
rename economy mip
eststo est22b: xtmelogit transfer15 sameparty sweden mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip economy 
rename sweden count_cap15 

*transfer 3
drop _all
use "SB_Unison_REP.dta"
*baseline
rename count_cap3 sweden
eststo est15: xtmelogit transfer3 sameparty sweden seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap3 
*MIP
rename health mip
eststo est23: xtmelogit transfer3 sameparty mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip health 
*Sweden
rename count_cap3 sweden  
rename health mip
eststo est23b: xtmelogit transfer3 sameparty sweden mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip health 
rename sweden count_cap3

*transfer 5
drop _all
use "SB_Unison_REP.dta"
*baseline
rename count_cap5 sweden
eststo est16: xtmelogit transfer5 sameparty sweden seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap5 
*MIP
rename unemployment mip
eststo est24: xtmelogit transfer5 sameparty mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip unemployment  
*Sweden
rename unemployment mip
rename count_cap5 sweden  
eststo est24b: xtmelogit transfer5 sameparty sweden mip seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename mip unemployment 
rename sweden count_cap5    

*transfer 20
drop _all
use "SB_Unison_REP.dta"
*Sweden
rename count_cap20 sweden
eststo est17: xtmelogit transfer20 sameparty sweden seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap20 

*transfer 12
drop _all
use "SB_Unison_REP.dta"
*Sweden
rename count_cap12 sweden
eststo est18: xtmelogit transfer12 sameparty sweden seats_i gov_i diff_ideology nateu i.reform || _all: party_i, noconstant || _all: party_j, noconstant 
rename sweden count_cap12

*Figures
lab var sameparty "party{subscript:i}=party{subscript:j}"

coefplot ///
(est2, pstyle(p1) ) ///
(est11, pstyle(p2) msymbol(S)) ///
(est20, pstyle(p3) msymbol(T)) ///
(est20b, pstyle(p4) msymbol(D)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) ///
xlabel(-0.6(0.2)1) ///
xline(0, lpattern(dash)) title("(A)") legend(off) name(en)

coefplot ///
(est3, pstyle(p1) ) ///
(est12, pstyle(p2) msymbol(S)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) ///
xlabel(-0.6(0.2)1) ///
xline(0, lpattern(dash)) title("(B)") legend(off) name(ag)

coefplot ///
(est5, pstyle(p1) ) ///
(est14, pstyle(p2) msymbol(S)) ///
(est22, pstyle(p3) msymbol(T)) ///
(est22b, pstyle(p4) msymbol(D)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) ///
xlabel(-0.6(0.2)1) ///
xline(0, lpattern(dash)) title("(C)") legend(off) name(ine)

coefplot ///
(est7, pstyle(p1) ) ///
(est16, pstyle(p2) msymbol(S)) ///
(est24, pstyle(p3) msymbol(T)) ///
(est24b, pstyle(p4) msymbol(D)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) ///
xlabel(-0.6(0.2)1) ///
xline(0, lpattern(dash)) title("(D)") legend(off) name(la)

coefplot ///
(est4, pstyle(p1) ) ///
(est13, pstyle(p2) msymbol(S)) ///
(est21, pstyle(p3) msymbol(T)) ///
(est21b, pstyle(p4) msymbol(D)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) ///
xlabel(-0.6(0.2)1) ///
xline(0, lpattern(dash)) title("(E)") legend(off) name(tr)

coefplot ///
(est9, pstyle(p1) ) ///
(est18, pstyle(p2) msymbol(S)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) ///
xlabel(-0.6(0.2)1) ///
xline(0, lpattern(dash)) title("(F)") legend(off) name(law)

coefplot ///
(est8, pstyle(p1) ) ///
(est17, pstyle(p2) msymbol(S)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) ///
xlabel(-0.6(0.2)1) ///
xline(0, lpattern(dash)) title("(G)") legend(off) name(go)

coefplot ///
(est1, pstyle(p1)) ///
(est10, pstyle(p2) msymbol(S)) ///
(est19, pstyle(p3) msymbol(T)) ///
(est19b, pstyle(p4) msymbol(D)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) /// 
xlabel(-0.6(0.2)1) ///
xline(0, lpattern(dash)) title("(H)") ///
legend(order(2 "baseline" 4 "CAP Sweden" 6 "MIP Denmark" 8 "CAP Sweden & MIP Denmark") row(1)) ///
name(ia)

coefplot ///
(est6, pstyle(p1) ) ///
(est15, pstyle(p2) msymbol(S)) ///
(est23, pstyle(p3) msymbol(T)) ///
(est23b, pstyle(p4) msymbol(D)) ///
,drop(_cons seats_i gov_i diff_ideology nateu *.reform) ///
xlabel(-0.6(0.2)1) ///
xline(0, lpattern(dash)) title("(I)") legend(off) name(he)

*COMBINE ALL FIGURES
grc1leg en ag ine la tr law go ia he, legendfrom(ia) 
graph drop en ag ine la tr law go ia he


************************************************************************************************
************APPENDIX****************************************************************************
************************************************************************************************

****FIGURE A1:
nbvargr count_transfer, n(19)

****FIGURE A2:
countfit count_transfer sameparty seats_i gov_i diff_ideology nateu i.reform break_nat break_eu, ///
inf( sameparty seats_i gov_i diff_ideology nateu i.reform break_nat break_eu) nbreg zinb

*****TALBE A2:
eststo clear
eststo: zinb count_transfer sameparty seats_i gov_i diff_ideology, ///
inflate(sameparty seats_i gov_i diff_ideology)  zip  vuong
eststo: zinb count_transfer sameparty seats_i gov_i diff_ideology i.reform i.break_eu i.break_nat, ///
inflate(sameparty seats_i gov_i diff_ideology  i.reform i.break_eu i.break_nat)  zip  vuong
eststo: xi: menbreg count_transfer sameparty seats_i gov_i diff_ideology nateu ///
if bothlevels==1 ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: xi: menbreg count_transfer sameparty seats_i gov_i diff_ideology nateu ///
i.reform i.break_eu i.break_nat if bothlevels==1 ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
esttab using app2.tex, eform se label nobaselevels  stats(ll chi2 N) replace substitute(\_ _)

****TABLE A3:
eststo clear
eststo: menbreg count_transfer lcount_transfer sameparty ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: menbreg count_transfer lcount_transfer sameparty seats_i gov_i ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: menbreg count_transfer lcount_transfer sameparty seats_i gov_i diff_ideology nateu ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: xi: menbreg count_transfer lcount_transfer sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
eststo: xi: menbreg count_transfer lcount_transfer sameparty seats_i gov_i diff_ideology nateu ///
i.reform i.break_eu i.break_nat ///
|| _all: party_i, noconstant || _all: party_j, noconstant irr
esttab using app3.tex, eform se stats(ll chi2 N)  ///
eqlabels("" "ln alpha" "var(party_i)"  "var(party_j)" , none) ///
label nobaselevels  ///
title("Explaining policy transfer, pooled regression results") ///
note("Exponantiated coefficients; standard errors in parentheses Models 1-4 non-nested multilevel negative binomial model; 5thterm = refecence category in model 4.") ///
nonumbers mtitles("baseline" "party controls" "level controls" "reforms" "binary DV") ///
substitute(\_ _)  ///
replace

****TABLE A4:
gen logtr=log(count_transfer+1)
eststo clear
eststo: xtmixed logtr sameparty ///
|| _all: party_i, noconstant || _all: party_j, noconstant || _all: my, noconstant
eststo: xtmixed logtr  sameparty seats_i gov_i ///
|| _all: party_i, noconstant || _all: party_j, noconstant || _all: my, noconstant
eststo: xtmixed logtr  sameparty seats_i gov_i diff_ideology nateu ///
|| _all: party_i, noconstant || _all: party_j, noconstant || _all: my, noconstant
eststo: xi: xtmixed logtr  sameparty seats_i gov_i diff_ideology nateu i.reform ///
|| _all: party_i, noconstant || _all: party_j, noconstant || _all: my, noconstant
eststo: xi: xtmixed logtr  sameparty seats_i gov_i diff_ideology nateu ///
i.reform i.break_eu i.break_nat ///
|| _all: party_i, noconstant || _all: party_j, noconstant || _all: my, noconstant
esttab using app4.tex, eform se stats(ll chi2 N)  ///
eqlabels("" "ln alpha" "var(party_i)"  "var(party_j)" "var(month)" , none) ///
label nobaselevels  ///
title("Log transformation of policy transfer, pooled regression results") ///
note("Exponantiated coefficients; standard errors in parentheses Models 1-4 non-nested multilevel negative binomial model; Model 5 non-nested multilevel logit model with time splines (omitted from table); 5thterm = refecence category in model 4.") ///
nonumbers mtitles("baseline" "party controls" "level controls" "reforms" "binary DV") ///
substitute(\_ _) ///
replace

****TABLES A4-A13 (You need to keep the estimates from figure 3 above!!!):
esttab est1 est10 est19 est19b using tabIA.tex, se aic bic star transform (ln*: exp(@) exp(@)) ///
eqlabels("" "sd(party_i)" "sd(party_j)" "corr(Time,_cons)" "sd(Residual)" , none) ///
varlabels(,elist(Time:_cons "{break}{hline @width}")) varwidth(13) ///
stats(ll chi2 aic bic N) nobaselevels label substitute(\_ _)
esttab est2 est11 est20 est20b using tabENV.tex, se aic bic star transform (ln*: exp(@) exp(@)) ///
eqlabels("" "sd(party_i)" "sd(party_j)" "corr(Time,_cons)" "sd(Residual)" , none) ///
varlabels(,elist(Time:_cons "{break}{hline @width}")) varwidth(13) ///
stats(ll chi2 aic bic N) nobaselevels label substitute(\_ _)
esttab est3 est12 using tabAG.tex, se aic bic star transform (ln*: exp(@) exp(@)) ///
eqlabels("" "sd(party_i)" "sd(party_j)" "corr(Time,_cons)" "sd(Residual)" , none) ///
varlabels(,elist(Time:_cons "{break}{hline @width}")) varwidth(13) ///
stats(ll chi2 aic bic N) nobaselevels label substitute(\_ _)
esttab est4 est13 est21 est21b using tabTR.tex, se aic bic star transform (ln*: exp(@) exp(@)) ///
eqlabels("" "sd(party_i)" "sd(party_j)" "corr(Time,_cons)" "sd(Residual)" , none) ///
varlabels(,elist(Time:_cons "{break}{hline @width}")) varwidth(13) ///
stats(ll chi2 aic bic N) nobaselevels label substitute(\_ _)
esttab est5 est14 est22 est22b using tabIN.tex, se aic bic star transform (ln*: exp(@) exp(@)) ///
eqlabels("" "sd(party_i)" "sd(party_j)" "corr(Time,_cons)" "sd(Residual)" , none) ///
varlabels(,elist(Time:_cons "{break}{hline @width}")) varwidth(13) ///
stats(ll chi2 aic bic N) nobaselevels label substitute(\_ _)
esttab est6 est15 est23 est23b using tabHE.tex, se aic bic star transform (ln*: exp(@) exp(@)) ///
eqlabels("" "sd(party_i)" "sd(party_j)" "corr(Time,_cons)" "sd(Residual)" , none) ///
varlabels(,elist(Time:_cons "{break}{hline @width}")) varwidth(13) ///
stats(ll chi2 aic bic N) nobaselevels label substitute(\_ _)
esttab est7 est16 est24 est24b using tabLA.tex, se aic bic star transform (ln*: exp(@) exp(@)) ///
eqlabels("" "sd(party_i)" "sd(party_j)" "corr(Time,_cons)" "sd(Residual)" , none) ///
varlabels(,elist(Time:_cons "{break}{hline @width}")) varwidth(13) ///
stats(ll chi2 aic bic N) nobaselevels label substitute(\_ _)
esttab est8 est17 using tabGO.tex, se aic bic star transform (ln*: exp(@) exp(@)) ///
eqlabels("" "sd(party_i)" "sd(party_j)" "corr(Time,_cons)" "sd(Residual)" , none) ///
varlabels(,elist(Time:_cons "{break}{hline @width}")) varwidth(13) ///
stats(ll chi2 aic bic N) nobaselevels label substitute(\_ _)
esttab est9 est18 using tabLAW.tex, se aic bic star transform (ln*: exp(@) exp(@)) ///
eqlabels("" "sd(party_i)" "sd(party_j)" "corr(Time,_cons)" "sd(Residual)" , none) ///
varlabels(,elist(Time:_cons "{break}{hline @width}")) varwidth(13) ///
stats(ll chi2 aic bic N) nobaselevels label substitute(\_ _)
